home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Experimental BBS Explossion 3
/
Experimental BBS Explossion III.iso
/
gus
/
patinf11.zip
/
PATCH.DOC
next >
Wrap
Text File
|
1993-03-26
|
4KB
|
84 lines
Note: Words and double-words are stored Intel-style.
Offset: (decimal) Contents:
------- ---------
0-7 ASCII text: 'GF1PATCH'
8-10 ASCII text: '100' (pre 2.01 disks)
'110' (2.01 disks)
11 byte '00'
12-20 ASCII text 'ID#000002'
21 byte '00'
22 ASCII text: copyright text
82 byte ;I call this Voices, always set to 1
83 word ;I call this Channels, always set to 14 decimal (0E hex)
85 word ;number of of samples, or waves
87 word ;master volume, usually set to 127 decimal (7F hex)
89 dword ;unknown, not used with pre 2.01 patches, value is close
;to the total length of the patch file. May be used for
;memory management purposes.
131 ASCII text: name of patch.
;first letter is missing in pre 2.01 patches
;apparently not used in 2.01 patches
147 dword ;unknown, related to value at 89
;set equal to 1 in pre 2.01 patches
151 byte ;unknown, but is always 1
194 dword ;another value related to values at 89 and 147
;not used in pre 2.01 patches
198 word ;number of samples, or waves
239 Sample block, or wave block
;there is a sample block for every sample in a patch
;the following offsets are into the sample block
0-5 ASCII text: sample name
;this is usually 'NoName'
6 byte '00'
7 byte ;I call this the mode byte, use is unknown
8 dword ;length of sample in bytes
12 dword ;loop start in bytes offset from beginning of sample
16 dword ;loop end in bytes offset from beginning of sample
20 word ;sampling frequency
22 dword ;high frequency multiplied by 1000
26 dword ;low frequency multiplied by 1000
30 dword ;base frequency multiplied by 1000
34 byte ;detune, usually equal to zero
35 byte ;octave, usually equal to 2
36 byte ;balance, usually 7, meaning center of stereo field
37-48 12 bytes ;envelope data, format unknown
;I have observed the following:
;first byte: higher = slower attack
;second byte: higher = longer attack
;fourth byte: level of release
;seventh byte: lower=slower attack
;eighth byte: lower = longer delay until attack
;ninth byte: level of release
;tenth byte: length of release
49 byte ;tremolo sweep
50 byte ;tremolo rate
51 byte ;termolo depth
52 byte ;vibrato sweep
53 byte ;vibrato rate
54 byte ;vibrato depth
55 byte ;flags 7 6 5 4 3 2 1 0
;I have observed the following:
;7 6: envelope scaling (I think)
;5: 1=melodic, 0=percussion
;4: 1=read sample backwards, 0=read sample forwards
;2: 1=sample is looped, 0=sample plays through once
;0: 1=sample is 16-bit, 0=sample is 8-bit
56 byte ;unknown, not used in pre 2.01 patches, usually '3C' hex
59 byte ;unknown, not used in pre 2.01 patches, usually '04'
96 Sample
;sample data is stored unsigned
;16-bit samples are stored Intel style with the
;least significant byte stored first.
;If there is more than one sample in the patch, the next
;sample block starts right after the end of the
;previous sample.